/* 欧拉回路
* 1.概念:
    欧拉路径：从图中某个点出发遍历整个图，图中每条边通过且只通过一次。
    欧拉回路：起点和终点相同的欧拉路。
    奇点：度为奇数的点。
    偶点：度为偶数的点。

* 2.欧拉路径：
    起点和终点不是同一个点：
    (1)无向图：起点和终点一定是奇点，中间经过的点一定是偶点。
    (2)有向图：起点出度个数比入度大一，终点入度个数比出度大一。中间的出入度个数相等。

* 3.欧拉回路：
    起点和终点是同一个点。
    (1)无向图：所有点都是偶点。（所有点都可以是起点）。
    (2)有向图：所有点的出入度个数相等。

    注意：
    无向的连通图中不存在奇数的奇点。

* 4.对于无向图，所有边都是连通的。
    (1)存在欧拉路径的充分必要条件:度数为奇数的点只能有0或?个。
    (2)存在欧拉回路的充分必要条件:度数为奇数的点只能有0个。

* 5.对于有向图，所有边都是连通,
    (1)存在欧拉路径的充分必要条件:要么所有点的出度均等于入度;
                                要么除了两个点之外，其余所有点的出度等于入度，剩余的两个点:一个满足出度比入度多1(起点)，
                                                                                      另一个满足入度比出度多1(终点)
    (2)存在欧拉回路的充分必要条件:所有点的出度均等于入度。

* 6.存欧拉路径解释:因为如果某点存在多条边，且有环，则某条边可能会dfs直通终点。
    因为没有先遍历环，则不能先存入遍历的点(边)，要该点的所有邻边遍历完，准备回溯时存入点(边),最后再逆序输出就是欧拉回路(路径)走的顺序。
 
 
* 本题: 
    1.本题中保证是连通图。
    2.本题中是双向图（不是无向图转化的）。所以每条边天然为两端点出入度同时加一。
    3.所以起点无所谓，必是有向图欧拉回路。
        
*/

#pragma GCC optimize("O1,O2,O3,Ofast")
#pragma GCC optimize("no-stack-protector,unroll-loops,fast-math,inline")
#pragma GCC target("avx,avx2,fma")
#pragma GCC target("sse,sse2,sse3,sse4,sse4.1,sse4.2,ssse3")

#include<iostream>
#include<cmath>
// #define ONLINE_GUDGE
using namespace std;

int main()
{

    #ifdef ONLINE_JUDGE

    #else
    freopen("./in.txt","r",stdin);
    #endif
    ios::sync_with_stdio(false);   
	cin.tie(0);
    
    double x1, y1, x2, y2;
    cin >> x1 >> y1; // 铲雪车的停放坐标 
    double ans = 0;
    while (cin >> x1 >> y1 >> x2 >> y2) { // 街道的起点坐标和终点坐标
        double dx = x1 - x2, dy = y1 - y2;
        ans += sqrt (dx * dx + dy * dy) * 2;
    }

    int minutes = round (ans / 1000 / 20 * 60);
    int hour = minutes / 60;
    minutes %= 60;
    printf ("%d:%02d\n",hour,minutes);
    
    return 0;
}